package com.fly.db.entity;

import com.fly.db.exception.TableExistException;
import com.fly.db.exception.TableNoExistException;

import java.util.ArrayList;

/**
 * Created with Android Studio.
 * Package_Name：com.fly.db.entity
 * Project_Name：DBExample
 * User：郭鹏飞
 * Date：2016/1/26
 * Email：love518420@foxmail.com
 * Description：
 */
public class DBEntity {
    private ArrayList<Table> tables;

    public DBEntity() {
        tables = new ArrayList<>();
    }

    /**
     * 添加表
     *
     * @param table Table
     */
    public void add(Table table) {
        if (tables.contains(table)) {
            throw new TableExistException();
        }
        tables.add(table);
    }

    /**
     * 根据表名移除表
     *
     * @param tableName 表名
     */
    public void remove(String tableName) {
        Table temp = null;
        for (Table table : tables) {
            if (table.getTableName().equals(tableName)) {
                temp = table;
                break;
            }
        }
        if (temp == null) {
            throw new TableNoExistException();
        }
        tables.remove(temp);
    }

    /**
     * 根据表名获取数据表
     *
     * @param tableName 表名
     * @return Table
     */
    public Table getTable(String tableName) {
        for (Table table : tables) {
            if (table.getTableName().equals(tableName)) {
                return table;
            }
        }
        throw new TableNoExistException();
    }

    /**
     * 获取所有的数据表
     *
     * @return 数据表集合
     */
    public ArrayList<Table> getTables() {
        return tables;
    }
}
